Computer systems experience technical issues, defects, crashes or complications that should undergo troubleshooting techniques to remove the causes of abnormal termination or other issues the computer system is experiencing. Software typically contains a number of defects or errors which may be classified into two general categories; the first is the category that causes crashes, while the other category may cause the computer system to hang. Among the chief concerns for program developers is to identify software or other system defects that cause computer systems to experience crashing or hanging. Software crashes can range in severity. In some instances the cause of the crash may be due to fatal system errors, which usually result in the abnormal termination of a program by a kernel or system thread. Normally, when a crash-causing defect is discovered, the software provider obtains diagnostic data, attempts to reproduce the error, and, depending on the severity of the defect, creates and distributes a fix for the defect.
One way to diagnose the cause of the crash involves examining log files containing diagnostic data including commands, events, instructions, program errors, computer system hardware specification, and/or other pertinent diagnostic information. The log file typically is generated right after a crash has been detected. After a crash, the log file may be sent to the software provider for analysis. In some cases, a log file does not contain enough information to diagnose a problem, thus, a crash dump may be required to troubleshoot the problem. A crash dump is generated when the physical contents of the computer system's memory are written to a predetermined file location.